Structuring Documentation to Support State Search: A Laboratory Experiment about Protocol Programming
نویسندگان
چکیده
Application Programming Interfaces (APIs) often define object protocols. Objects with protocols have a finite number of states and in each state a different set of method calls is valid. Many researchers have developed protocol verification tools because protocols are notoriously difficult to follow correctly. However, recent research suggests that a major challenge for API protocol programmers is effectively searching the state space. Verification is an ineffective guide for this kind of search. In this paper we instead propose Plaiddoc, which is like Javadoc except it organizes methods by state instead of by class and it includes explicit state transitions, state-based type specifications, and rich state relationships. We compare Plaiddoc to a Javadoc control in a betweensubjects laboratory experiment. We find that Plaiddoc participants complete state search tasks in significantly less time and with significantly fewer errors than Javadoc participants.
منابع مشابه
Protocol Programmability
Application Programming Interfaces (APIs) often define protocols— restrictions on the order of client calls to API methods. API protocols are common and difficult to follow, which has generated tremendous research into the specification and verification of protocols. However, verification techniques do little to alleviate several major challenges programmers face when using API protocols: fixin...
متن کاملLanguage Support for Identifying Flexible Points in Coercible Simulations
Simulation developers are forced to make assumptions about how their simulations will be used and possibly revised to support reuse. Even when developers are aware of potential future adaptations for reuse, current programming languages do not support expression of design alternatives reflecting those adaptations. One can use program documentation to describe them, but documentation does not su...
متن کاملLanguage Support for Identifying Flexible Points in Coercible S
Simulation developers are forced to make assumptions about how their simulations will be used and possibly revised to support reuse. Even when developers are aware of potential future adaptations for reuse, current programming languages do not support expression of design alternatives reflecting those adaptations. One can use program documentation to describe them, but documentation does not su...
متن کاملAnalysis and Modeling of VoIP Servers: A Linear Programming Approach
The SIP protocol was standardized by the IETF at the application layer for initiating, managing, and terminating multimedia sessions and has been widely used as the main signaling protocol on both the Internet and VoIP networks. Most challenges in this protocol are overload and lack of proper state distribution. These challenges cause a wide range of next-generation network users to face a shar...
متن کاملPREDICTION OF SLOPE STABILITY STATE FOR CIRCULAR FAILURE: A HYBRID SUPPORT VECTOR MACHINE WITH HARMONY SEARCH ALGORITHM
The slope stability analysis is routinely performed by engineers to estimate the stability of river training works, road embankments, embankment dams, excavations and retaining walls. This paper presents a new approach to build a model for the prediction of slope stability state. The support vector machine (SVM) is a new machine learning method based on statistical learning theory, which can so...
متن کامل